import React, { FC, useEffect, useRef } from 'react'
import styles from './index.module.scss'
import * as echarts from 'echarts'
const BrokenLine: FC = () => {
  const chartRef = useRef(null)
  let chartInstance: echarts.ECharts | null = null
  useEffect(() => {
    if (chartRef.current) {
      chartInstance = echarts.init(chartRef.current)
      const option = {
        title: {
          text: '',
        },
        tooltip: {
          trigger: 'axis',
        },
        legend: {
          data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine'],
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true,
        },
        toolbox: {
          feature: {
            saveAsImage: {},
          },
        },
        xAxis: {
          type: 'category',
          boundaryGap: false,
          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        },
        yAxis: {
          type: 'value',
        },
        series: [
          {
            name: 'Email',
            type: 'line',
            stack: 'Total',
            data: [120, 132, 101, 134, 90, 230, 210],
          },
          {
            name: 'Union Ads',
            type: 'line',
            stack: 'Total',
            data: [220, 182, 191, 234, 290, 330, 310],
          },
          {
            name: 'Video Ads',
            type: 'line',
            stack: 'Total',
            data: [150, 232, 201, 154, 190, 330, 410],
          },
          {
            name: 'Direct',
            type: 'line',
            stack: 'Total',
            data: [320, 332, 301, 334, 390, 330, 320],
          },
          {
            name: 'Search Engine',
            type: 'line',
            stack: 'Total',
            data: [820, 932, 901, 934, 1290, 1330, 1320],
          },
        ],
      }

      chartInstance.setOption(option)
      // 清理函数，用于组件卸载时销毁ECharts实例
      return () => {
        if (chartInstance) {
          chartInstance.dispose()
        }
      }
    }
  }, [])
  return <div ref={chartRef} className={styles.brokenLineContent}></div>
}
export default BrokenLine
